package com.OA.dao;

import java.util.List;
import java.util.Map;
import com.OA.entity.Message;
import com.OA.entity.User;

/**
 * 站内信数据层
 * @author z_z_h
 *
 */
public interface ZZH_EmailMapper {
	/**
	 * 获取下拉列表的用户名
	 * @return
	 */
	List<User> optionByuserName();
	/**
	 * 用于登录用户
	 * @return
	 */
	Message login(String userName);
	/**
	 * 根据用户发件人或者收件人名字查询id
	 * @param userName
	 * @return
	 */
	List<Message> loginById(String userName);
	/**
	 * 添加到草稿箱/发送邮件
	 */
	void draftAndOutBox(Message message);
	/**
	 * 查询所有草稿箱及按条件查询草稿箱/查询所有发件箱及按条件查询发件箱
	 * @param map
	 * @return
	 */
	List<Message> loadDraftsAndOutBox(Map map);
	/**
	 * 查询草稿箱条数/查询发件箱条数
	 * @param map
	 * @return
	 */
	int loadDraftsAndOutBoxByTotal(Map map);
	/**
	 * 删除数据
	 * @param mid
	 */
	void deleteById(Integer mid);
	/**
	 * 恢复数据
	 * @param mid
	 */
	void recoverById(Integer mid);
	/**
	 * 查询所有收件箱及按条件查询收件箱
	 * @param map
	 * @return
	 */
	List<Message> loadInBox(Map map);
	/**
	 * 查询收件箱条数
	 * @param map
	 * @return
	 */
	int loadInBoxByTotal(Map map);
	
	/**
	 * 添加到回收站
	 * @param mid
	 */
	void insertRecycleStand(Integer mid);
	/**
	 * 回收站查询所有发件箱
	 * @param map
	 * @return
	 */
	List<Message> selectRecycleOutBox(Map map);
	/**
	 * 回收站查询发件箱条数
	 * @param map
	 * @return
	 */
	int selectRecycleOutBoxByTotal(Map map);
	/**
	 * 回收站查询所有收件箱
	 * @param map
	 * @return
	 */
	List<Message> selectRecycleInBox(Map map);
	/**
	 * 回收站查询收件箱条数
	 * @param map
	 * @return
	 */
	int selectRecycleInBoxByTotal(Map map);
	/**
	 * 根据id查询收件箱数据进行表单回填
	 * @param mid
	 * @return
	 */
	Message inBoxById(int mid);
	/**
	 * 根据id改变已读状态
	 * @param mid
	 * @return
	 */
	void inBoxByIdState(int mid);
}
